Modern mobile devices are used by workers in performing their job duties. The primary means of interacting with applications on these mobile devices is through a touchscreen, which generally includes a display and virtual keyboard. The development paradigm for these devices tends to focus solely on the touchscreen as the primary means of input and output, with some applications including voice dialog as a secondary means of interacting with an application.
Business workflow experts usually understand the job and associated job duties, commonly referred to as the problem domain well, but lack the skills to turn their expertise into working applications. Software developers typically have the inverse set of skills, with many undocumented bits of knowledge being acquired by skilled developers over the years. Conventional methods of generating mobile workflow applications follow one of two paths, with each path suffering from its own shortcomings. One path involves developers trying to understand the problem domain while using their experience to code applications that may not optimize knowledge of domain experts about the problem domain. Another path involves non-developers who understand the problem domain well, using over-simplified application level concepts, resulting in a limited ability to express complex workflows. The result is that neither path is ideal.